<>括起来的代码在java中什么含义?

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:04:29
RpcProxy<PagingLoadResult<Post>> proxy = new RpcProxy<PagingLoadResult<Post>>() {
public void load(Object loadConfig, AsyncCallback<PagingLoadResult<Post>> callback) {
service.getPosts((PagingLoadConfig) loadConfig, callback);
}
};
final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(
proxy);
loader.setRemoteSort(true);
ListStore<Post> store = new ListStore<Post>(loader);
一小段代码,谁能告诉我用< >括起来的代码什么意思?对象么?具体用法?

泛型。规定了此集合中元素的类型。例如:

ArrayList<Integer> arr = new ArrayList<Integer> ();

这样就创建了一个包含整数的 ArrayList 对象。
如果要自己定义泛型类,就用如下形式:

class MyCollection<E> {...}

尖括号中的类型可以有限制,例如你需要让 MyCollection 中的类型都具有可比性,可以用如下格式:

class MyCollection<E extends Comparable> {...}

此外,要注意泛型的一些特性:

1. 不能直接创建泛型数组。如 new ArrayList<Integer>[5] 之类的是错的。只能用如下方法:new ArrayList[5] 或者 (ArrayList<Integer>[])new ArrayList[5];

2. 静态方法中需要小心,因为 E 一般是非静态类型,如果你这样写:
class MyCollection<E> {
public static MyCollection<E> abc() {
......
}
}
是错的。你只能把 <E> 去掉。

泛型,jdk1.5之后才有,1.5之前用会报错。
比如 Map<String,Integer> map = new HashMap<String, Integer>();
说明,map的键值队应该是,key是String类型,value是Integer类型
map.put("aa",new Integer(10));//这句是对的
map.put(new Long(10), new Integer(10));//这句是错的
就是<>里面要求的